Given a seed curve $\Gamma$, a stream surface $S_\Gamma$ is a surface that
contains $\Gamma$ and is tangent to the vector field everywhere.
\cite{scivisbookch06}. In our implementation, $\Gamma$ is an line whose
endpoints $(x, y, t)$ can be defined by the user. The endpoints of $\Gamma$ lie in
different time slices, and the time slices in which they lie can be specified
as well. The procedure for drawing a stream surface is the following:
\begin{enumerate}
  \item Given endpoints $(x_\mathrm{b}, y_\mathrm{b}, t_\mathrm{b})$ and
    $(x_\mathrm{e}, y_\mathrm{e}, t_\mathrm{e})$, calculate the position of the
    intersection of $\Gamma$ with the current timeslice $t_i$ and the next
  drawn timeslice $t_{i+\Delta t}$, where $\Delta t$ is the time difference
between the drawn slices. This can be done using interpolation. 
\item For the current and the next slice, use
    each intersection between the slice and $\Gamma$ as the seedpoint for a streamline.
\item Connect each segment of the streamline in $t_i$ with the corresponding
  segment of the streamline in $t_{i+\Delta t}$ by drawing a quad.
\item $t_i \leftarrow t_{i+\Delta t}$
\item Repeat 1 - 4 for until $t_i$ is equal to $t_\mathrm{e}$.
\end{enumerate}
The vertices of drawn quads are colored according to the value of
\texttt{StreamSurface}'s scalar dataset at the drawn point. 

The implementation of our \texttt{StreamSurface} class is incomplete. We
did not manage to implement shading since the design of our \texttt{Visualizer}
class made computing the vertex normals a very innvolved procedure.
Additionally, the way the surface is drawn at the grid boundaries is imperfect
and causes a jagged line. Best results are obtained for a slice time difference
of 1. Figure \ref{fig:surface} shows an example of a rendered stream surface.

\begin{figure}[ht]
  \begin{center}
    \includegraphics[width=\textwidth]{./images/surface}
  \end{center}
  \caption{Example of a stream surface. Both the streamlines and the stream
    surface visualize the fluid flow vector field. They are colored using the
    value of the fluid density vector field.}
  \label{fig:surface}
\end{figure}
